/**
 * @author rxliuli
 */
const validate = (() => {
    const {
        CombinedPredicate: {
            not,
        },
        stringValidator: {
            isTelephone,
            isMobile,
            isEmail,
        },
    } = rx
    return RxFormValidator.validator({
        rxElemValidators: [
            RxElemValidator.notBlank('name', '[姓名] 不能为空'),
            RxElemValidator.notBlank('idType', '[证件类型] 不能为空'),
            RxElemValidator.notBlank('idNumber', '[证件号码] 不能为空'),
            RxElemValidator.notBlank('tel', '[固定电话] 不能为空'),
            RxElemValidator.notBlank('mobile', '[移动电话] 不能为空'),
            RxElemValidator.notBlank('email', '[电子邮件] 不能为空'),
            RxElemValidator.notBlank('updateTime', '[最后更新时间] 不能为空'),

            RxElemValidator.limitLen('name', '[姓名] 长度最大为 20 位', 20),
            RxElemValidator.limitLen('idNumber', '[证件号码] 长度最大为 32 位', 32),
            RxElemValidator.limitLen('tel', '[固定电话] 长度最大为 32 位', 32),
            RxElemValidator.limitLen('mobile', '[移动电话] 长度最大为 32 位', 32),
            RxElemValidator.limitLen('email', '[电子邮件] 长度最大为 64 位', 64),

            RxElemValidator.create('tel', '[固定电话] 格式错误，示例: [010-88888888]', not(isTelephone)),
            RxElemValidator.create('mobile', '[移动电话] 格式错误，示例: [13532611510]', not(isMobile)),

            RxElemValidator.create('email', '[电子邮件] 格式错误，示例: [rx@liuli.com]', not(isEmail)),
        ],
    })
})()